// 页面: 工作台-审批管理-审批详情
const $app = getApp()
Page({
  data: {
    display: 0, // 当前显示内容
    // ===== 参数 =====
    param: {
      agreeNum: null, // eventNum
      pageNo: 1, // 第几页
      pageSize: 10 // 一页几条数据
    },
    tableData: [], // 审批记录数据
    fileKeys: ['filepath', 'filename'],
    listData: {
      display: [{ id: 0, name: '基本信息'}, { id: 1, name: '审批记录'}],
      isAgree: [{ id: 0, name: '是'}, { id: 1, name: '否'}],
      assetsType: $app.listData.assetsType, // 资产类别 商业
      useCondition: $app.listData.useSituation, // 使用情况 空置
      includeMoney: $app.listData.includeMoney, // 涉及金额 3万以下
      manageType: $app.listData.manageType // 管理方式 出租
    },
    // ===== 基础信息 相关数据 =====
    baseData: {}, // 基础信息
    baseInfo: [{ // 配置信息
      title: '基本信息',
      data: {
        agreeNum: { name: '审批单号' },
        assetsNum: { name: '资产编号', type: 'textShow', isShow: false },
        manageCompanyName: { name: '管理单位', type: 'textShow', isShow: false },
        locatePlace: { name: '坐落地点', type: 'textShow', isShow: false },
        assetsType: { name: '资产类别', type: 'tip', tip: '多种类别' },
        useCondition: { name: '使用情况', type: 'tip', tip: '多种情况' },
        includeMoney: { name: '涉及金额', type: 'listData' },
        launchDepartName: { name: '申请部门' },
        writeTime: { name: '申请日期' },
        manageType: { name: '管理方式', type: 'listData' },
        person: { name: '经办人' },
        isAgree: { name: '是否经过审批', type: 'listData' }
      }
    },{
      title: '会办情况',
      data: {
        assetsStatus: { type: 'textarea', Key: 'assetsStatus'},
      }
    },{
      title: '相关附件',
      data: {
        filepath: { type: 'file', urlKey: 'filepathArr', nameKey: 'filenameArr' },
      }
    }],
    // ===== 审批记录 相关数据 =====
    total: 0,
    billData: [], // 审批记录
    refreshing: false, // 是否正在刷新中
    loading: false, // 是否正在加载中
    backTop: false, // 滚动条回到顶部(只要改变值就回到顶部)
    billInfo: {
      agreeTime: { name: '审批时间' },
      agreePeople: { name: '审批人' },
      agreeRole: { name: '审批部门' },
      agreeResult: { name: '审批结果' },
      agreeIdea: { name: '审批意见' }
    }
  },
  model (e) { $app.$common_wx.model(e, this) }, // 双向绑定
  // ========== 生命周期: 页面加载 ==========
  onLoad: function (options) {
    if (!options.agreeNum) return
    this.setData({ ['param.agreeNum']: options.agreeNum })
    this.getBaseData() // 获取基本信息
  },
  // ========== 生命周期: 页面初次渲染完成 ==========
  onReady: function () {},
  // ========== 生命周期: 页面显示 ==========
  onShow: function () {},
  // ========== 生命周期: 页面隐藏 ==========
  onHide: function () {},
  // ========== 生命周期: 页面卸载 ==========
  onUnload: function () {},
  // ========== '当前显示内容'改变时 ==========
  displayChange () {
    if (this.data.display === 0) {
      this.getBaseData() // 获取基本信息
    } else {
      this.getBillData() // 获取审批记录
    }
  },
  // ========== 获取租户信息 ==========
  getBaseData () {
    $app.$common.openLoading() // 开启加载
    // 审批基本信息
    $app.$api.agreePass.agreeSelectDetail(this.data.param).then(({ data }) => {
      console.log('api-审批基本信息', data)
      let newData = data || {}
      this.data.fileKeys.forEach(k => { newData[k + 'Arr'] = newData[k] ? newData[k].split(',') : [] })
      this.setData({ baseData: newData })
      $app.$common.closeLoading() // 关闭加载
    }).catch(({ type, res }) => {})
  },
  // ========== 获取审批记录 ==========
  getBillData (RAndL) {
    const dataKey = 'billData'
    if (!RAndL) {
      $app.$common.openLoading() // 开启加载
      this.setData({ ['param.pageNo']: 1 })
    }
    $app.$api.agreePass.agreeRecordSelectList({
      '*': true,
      '/': true,
      ...this.data.param
    }).then(({ data, count }) => {
      console.log('api-收费明细', data, count)
      data = data || []
      let newData = []
      data.forEach( b => {
        b.agreeResult && newData.push(b)
      })
      const total = count || 0
      if (RAndL === 'refresh') { // 刷新
        this.setData({ refreshing: false })
      } else if (RAndL === 'load') { // 加载
        newData = this.data[dataKey].concat(newData)
        this.setData({ loading: false })
      } else {
        this.setData({ backTop: !this.data.backTop })
      }
      this.setData({ [dataKey]: newData, total })
      $app.$common.closeLoading() // 关闭加载
    }).catch(({ type, res }) => {
      console.log('api-收费明细 catch', type, res)
      let newData = []
      let total = 0
      if (RAndL === 'refresh') { // 刷新
        this.setData({ refreshing: false })
      } else if (RAndL === 'load') { // 加载
        newData = this.data[dataKey]
        total = this.data.total
        const pageNo = this.data.param.pageNo - 1 // 页数
        this.setData({ loading: false, pageNo: pageNo })
      } else {
        this.setData({ backTop: !this.data.backTop })
      }
      this.setData({ [dataKey]: newData, total })
      $app.$common.closeLoading() // 关闭加载
      $app.$common.message('数据获取失败', 'error') // 提示信息
    })
  },
  // ========== 展开 ==========
  spread (row) {
    let isShow = row.currentTarget.dataset.isshow
    let key = row.currentTarget.dataset.key
    this.setData({ ['baseInfo[0].data.'+ key +'.isShow']: !isShow })
  },
  // ========== 刷新 ==========
  refresh () {
    this.setData({ ['param.pageNo']: 1 })
    this.getBillData('refresh') // 获取数据
  },
  // ========== 加载 ==========
  load () {
    const dataKey = 'billData'
    if (this.data[dataKey].length >= this.data.total) {
      this.setData({ loading: false })
      return
    }
    const pageNo = this.data.param.pageNo + 1
    this.setData({ ['param.pageNo']: pageNo })
    this.getBillData('load') // 获取数据
  }
})